<%-- 
    Document   : setTypeofsportCategories
    Created on : 15.02.2011, 16:57:14
    Author     : felix
--%>

<%
    // Wenn Parameter hidden übergeben wurde ...
    if(request.getParameterMap().containsKey("hidden")){
        // Wenn Parameter id nicht leer ist
        if(!request.getParameter("id").equals(""))
        {
            // Alte Zuordnungn von Kategorien und Sportart löschen
            db.categoriessport.deleteCategoriessport(request.getParameter("id").toString());
            
            // Wenn Parameter categories übergeben wurde
            if(request.getParameterMap().containsKey("categories")){
                // Wenn mindestens eine categories übergeben wurde
                if(request.getParameterValues("categories").length > 0){
                    // Für jede Kategorie ...
                    for(String pCat: request.getParameterValues("categories")){
                        // Neue Zuordnung von Kategorien und Sportart speichern
                        db.categoriessport.createCategoriessport(pCat, request.getParameter("id").toString());
                    }
                }
            }

            // Erfolgsmeldung setzen
            session.setAttribute("flash", "Zuordnung gespeichert");
            session.setAttribute("flash_color", "green");

            //getServletContext().getRequestDispatcher("/viewAllTrainingplans.jsp").forward(request, response);
        } else {
            // Fehlermeldung setzen
            session.setAttribute("flash", "Zuordnung wurde nicht gespeichert");
            session.setAttribute("flash_color", "red");

        }
    }
%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ include file="header.jsp" %>

<div id="contents">
     <h1>Zuordnung Sportart - Kategorien</h1>

     <form action="setTypeofsportCategories.jsp" method="post">
         <fieldset>
             <legend>Sportart</legend>
             <label>Sportart</label>

             <select name="typeofsport" onChange="this.form.submit()">
                 <%
                    // Alle Sportarten auslesen
                    String[][] selectableTypeofsport = db.typeofsport.getAllTypeofsport();

                    // Für jede Sportart
                    for(String value[]: selectableTypeofsport){
                        // option-Element erzeugen
                        out.print("<option value=\"" + value[0] + "\"");

                        // Wenn Parameter typeofsport übergeben wurde ...
                        if(request.getParameterMap().containsKey("typeofsport")){
                            // Wenn aktuelle Sportart dem Parameter typeofsport entstpricht
                            if(value[0].toString().equals(request.getParameter("typeofsport").toString())){
                                // Setze Sportart als ausgewählt
                                out.print(" selected");
                            }
                        // Wenn Parameter id übergeben wurde ...
                        } else if (request.getParameterMap().containsKey("id")){
                            // Wenn aktuelle Sportart dem Parameter id entstpricht
                            if(value[0].toString().equals(request.getParameter("id").toString())){
                                // Setze Sportart als ausgewählt
                                out.print(" selected");
                            }
                        }

                        // Schließe option-Element
                        out.print(">" + value[1] + "</option>");
                    }
                 %>
             </select>


        </fieldset>
     </form>

     <form action="setTypeofsportCategories.jsp" method="post">
         <fieldset>
             <legend>Kategorien</legend>
             <input type="hidden" name="hidden" value="1"/>

             <label>Kategorien</label>
                 <%
                    // Ausgewählte Kategorien initialisieren
                    String[][] seletectedCategoriesTypeofsport = null;

                    // Wenn Parameter id übergeben wurde ...
                    if(request.getParameterMap().containsKey("id")){
                        // Wenn Parameter id nicht leer ist
                        if(!request.getParameter("id").toString().equals("")){
                            // Lies alle ausgewählten Kategorien
                            seletectedCategoriesTypeofsport = db.categoriessport.getCategoriesByTypeofsportId(request.getParameter("id").toString());
                        }
                    // Wenn Parameter typeofsport übergeben wurde ...
                    } else if(request.getParameterMap().containsKey("typeofsport")){
                        // Wenn Parameter typeofsport nicht leer ist
                        if(!request.getParameter("typeofsport").toString().equals("")){
                            // Lies alle ausgewählten Kategorien 
                            seletectedCategoriesTypeofsport = db.categoriessport.getCategoriesByTypeofsportId(request.getParameter("typeofsport").toString());
                        }
                    } else {
                        // Setze Standardauswahl für erste Sportart
                        seletectedCategoriesTypeofsport = db.categoriessport.getCategoriesByTypeofsportId(selectableTypeofsport[0][0]);
                    }

                    // Auswählbare Kategorien lesen
                    String[][] selectableCategories = db.categories.getCategorieNamesAndIds();

                    // Für jede auswählbare Kategorie ....
                    for(String value[]: selectableCategories){
                        // Checkbox erstellen
                        out.print("<input name=\"categories\" type=\"checkbox\" value=\"" + value[0] + "\"");

                        // Wenn Parameter typeofsport oder id übergebn wurde ...
                        if(request.getParameterMap().containsKey("typeofsport") || request.getParameterMap().containsKey("id")){
                            // Wenn ausgewählte Kategorien nicht null ist ...
                            if (seletectedCategoriesTypeofsport != null){
                                // Für jede ausgewählte Kategorie ...
                                for(String[] selectedCategory: seletectedCategoriesTypeofsport){
                                    // Wenn auswählbare Kategorie der ausgewählten Kategorie entspricht
                                    if(value[0].equals(selectedCategory[0])){
                                        // Setze Kategorie als ausgewählt
                                        out.print(" checked");
                                    }
                                }
                            }
                        // Wenn mehr als eine Kategorie ausgewählt wurde
                        } else if (seletectedCategoriesTypeofsport.length > 0){
                            // Für jede ausgewählte Kategorie ...
                            for(String[] selectedCategory: seletectedCategoriesTypeofsport){
                                // Wenn auswählbare Kategorie der ausgewählten Kategorie entspricht
                                if(value[0].equals(selectedCategory[0])){
                                     // Setze Kategorie als ausgewählt
                                     out.print(" checked");
                                }
                            }
                        }

                        // Beende Checkox 
                        out.print("><font style=\"color:#fff;\">" + value[1] + "</font><br/><br/>");
                    }
                 %>
            <input type="hidden" name="id" value="<%
                // Wenn Parameter id übergeben wurde ...
                if(request.getParameterMap().containsKey("id")){
                    // Wenn Parameter id nicht leer ist ...
                    if(!request.getParameter("id").equals("")){
                       // Gib den Wert von Parameter id aus
                       out.print(request.getParameter("id"));
                    }
                // Wenn Parameter typeofsport übergeben wurde ...
                } else if(request.getParameterMap().containsKey("typeofsport")){
                    // Wenn Parameter typeofsport nicht leer ist ...
                    if(!request.getParameter("typeofsport").equals("")){
                       // Gib den Wert von Parameter typeofsport aus
                       out.print(request.getParameter("typeofsport"));
                    }
                } else {
                    out.print(selectableTypeofsport[0][0]);
                }
                %>"/>
            <br/><br/>

            <input class="submit" type="submit" name="send" value="Zuordnung speichern">
        </fieldset>
     </form>
  </div>
<%@ include file="footer.jsp" %>

